JS 判断字符串、数组、对象数组是否包含某个值以及字符串是否匹配某个模式 您所在的位置:网站首页 正则表达式 数组包含 JS 判断字符串、数组、对象数组是否包含某个值以及字符串是否匹配某个模式

JS 判断字符串、数组、对象数组是否包含某个值以及字符串是否匹配某个模式

2024-06-19 02:43| 来源: 网络整理| 查看: 265

目录 一、字符串indexOf()方法includes()方法search()方法match() 方法 二、数组indexOf() 方法includes() 方法find() 方法findIndex() 方法some() 方法 三、对象数组find() 方法findIndex() 方法some() 方法 四、RegExp对象RegExp对象的声明test() 方法exec() 方法

一、字符串 indexOf()方法

可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。

var str = "123" console.log(str.indexOf("2") != -1); // true var str = 'Hello world!'; console.log( str.indexOf('e') ); // 存在字符串中,返回位置 1 console.log( str.indexOf('d') ); // 存在字符串中,返回位置 10 console.log( str.indexOf('x') ); // 不存在字符串中,返回 -1 includes()方法

用于判断一个字符串是否包含另一个字符串,返回一个布尔值。如果包含则返回true,如果不包含则返回false。

var str="Hello world!"; if(str.includes("world")){ console.log("字符串中包含'world'"); } else{ console.log("字符串中不包含'world'"); } search()方法

也用于检索字符串中是否包含指定的字符或者子串,如果包含则返回字符或者子串的位置,如果不包含则返回-1。与indexOf()方法不同的是,search()方法接受一个正则表达式作为参数。

var str = "123" console.log(str.search("2") != -1); // true match() 方法

可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

var str="Hello world!"; if(str.match("world")){ console.log("字符串中包含'world'"); } else{ console.log("字符串中不包含‘world’"); } var str = "123" var reg = RegExp(/3/); if(str.match(reg)){ //包含; } 二、数组 indexOf() 方法

1.如果你的代码需要兼容 ES5 或更早的版本,那么可以使用 indexOf() 方法来判断数组是否包含某个元素。它的语法如下:array.indexOf(searchElement[, fromIndex]);其中searchElement 表示要查找的元素,fromIndex 表示搜索的起始位置,默认值为 0。indexOf() 方法返回一个数字,表示数组中第一次出现指定元素的位置。如果数组中不包含该元素,则返回 -1。

const fruits = ['apple', 'banana', 'orange']; console.log(fruits.indexOf('apple') !== -1); // true console.log(fruits.indexOf('banana') !== -1); // true console.log(fruits.indexOf('pear') !== -1); // false var arr = ['cat', 'dog', 'bat']; console.log( arr.indexOf('cat') ) // 存在 返回位置 0 console.log( arr.indexOf('dog') ) // 存在 返回位置 1 console.log( arr.indexOf('tiger') ) // 不存在 返回 -1 includes() 方法

在 ES6 中,为数组提供了一个 includes() 方法,用于判断数组是否包含某个元素。它的语法如下:array.includes(searchElement[, fromIndex])其中,searchElement 表示要查找的元素,fromIndex 表示搜索的起始位置,默认值为 0。includes() 方法返回一个布尔值,表示数组中是否包含指定的元素。

var arr = ['cat', 'dog', 'bat']; console.log( arr.includes('cat' ) ) // 存在 返回 true console.log( arr.includes('dog' ) ) // 存在 返回 true console.log( arr.includes('tiger') ) // 不存在 返回 false find() 方法 ES6 中还提供了一个 find() 方法,它可以用于获取数组中符合条件的第一个元素。如果数组中不存在符合条件的元素,则返回 undefined。我们可以利用这一点来判断数组是否包含某个元素。这里的 find() 方法使用了一个箭头函数,它接受一个参数 item,表示数组中的每一个元素。箭头函数的返回值为 item 是否等于要查找的元素,如果是则返回 true,否则返回 false。最终,find() 方法返回的是查找结果是否为 undefined,即是否存在符合条件的元素。使用 find() 方法判断数组是否包含某个元素的示例代码: const fruits = ['apple', 'banana', 'orange']; console.log(fruits.find(item => item === 'apple') !== undefined); // true console.log(fruits.find(item => item === 'banana') !== undefined); // true console.log(fruits.find(item => item === 'pear') !== undefined); // false findIndex() 方法

返回符合传入测试(函数)条件的数组元素索引,否则返回 -1.

var arr = ['cat', 'dog', 'bat']; console.log( arr.findIndex(v => v == 'cat' ) ) // 存在 返回 0 console.log( arr.findIndex(v => v == 'dog' ) ) // 存在 返回 1 console.log( arr.findIndex(v => v == 'tiger') ) // 不存在 返回 -1 some() 方法

与 find() 方法类似,ES6 中还提供了一个 some() 方法,它可以用于判断数组中是否存在符合条件的元素。如果数组中存在符合条件的元素,则返回 true,否则返回 false。以下是使用 some() 方法判断数组是否包含某个元素的示例代码:

const fruits = ['apple', 'banana', 'orange']; console.log(fruits.some(item => item === 'apple')); // true console.log(fruits.some(item => item === 'banana')); // true console.log(fruits.some(item => item === 'pear')); // false 三、对象数组 find() 方法 var arr = [{name:'cat'}, {name:'dog'}, {name:'bat'}]; console.log( arr.find(v => v.name == 'dog' ) ) // 存在 返回 {name: "dog"} console.log( arr.find(v => v.name == 'tiger') ) // 不存在 返回 undefined findIndex() 方法 var arr = [{name:'cat'}, {name:'dog'}, {name:'bat'}]; console.log( arr.findIndex(v => v.name == 'cat' ) ) // 存在 返回 0 console.log( arr.findIndex(v => v.name == 'dog' ) ) // 存在 返回 1 console.log( arr.findIndex(v => v.name == 'tiger') ) // 不存在 返回 -1 some() 方法 var arr = [{name:'cat'}, {name:'dog'}, {name:'bat'}]; console.log( arr.some(v => v.name == 'cat' ) ) // 存在 返回 true console.log( arr.some(v => v.name == 'dog' ) ) // 存在 返回 true console.log( arr.some(v => v.name == 'tiger') ) // 不存在 返回 false // 循环判断arr与arr2是否有相同元素,相同的添加isdelete:false字段,不同添加isdelete:true this.arr.map((item) => { let bool = this.arr2.findIndex((it) => { return item.name == it.name }) if (bool !== -1) { item.isdelete = false } else { item.isdelete = true } }) 四、RegExp对象 RegExp对象的声明

语法:声明一个RegExp有两种方式: 1)使用对象创建:var re=new RegExp(pattern,modifiers); // var 变量名 = new RegExp(“正则表达式”,“匹配模式”);

​​​​​​// 这个正则表达式可以来检查一个字符串中是否含有a var reg = new RegExp("ab", "i"); var str = "Abc"; var result = reg.test(str); console.log(result); //true

2)使用字面量创建:var re =/pattern/modifiers; // var 变量名 = /正则表达式/匹配模式;

// 这个正则表达式可以来检查一个字符串中是否含有a var reg = /a/i; var str = "Abc"; var result = reg.test(str); console.log(result); // true

匹配模式: i:忽略大小写 g:全局匹配模式 ig:忽略大小写且全局匹配模式 m:执行多行匹配 注意:可以为一个正则表达式设置多个匹配模式,且顺序无所谓

test() 方法 test() 方法用于检测一个字符串是否匹配某个模式。如果字符串中有匹配的值返回 true ,否则返回 false。语法:RegExpObject.test(string) var str = "123" var reg = RegExp(/3/); console.log(reg.test(str) != -1); // true // 这个正则表达式可以来检查一个字符串中是否含有a var reg = /a|b|c/; var str = "Abc"; var result = reg.test(str); console.log(result); // 这个正则表达式可以来检查一个字符串中是否含有字母 var reg = /[A-z]/; var str = "Abc"; var result = reg.test(str); console.log(result); // Javascript 判断是移动端浏览器还是 PC 端浏览器: if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { document.write("移动") } else { document.write("PC") } // 验证用户手机号提交是否符合要求 var phone =18367898765; var reg=/^[1][3,4,5,7,8][0-9]{9}$/; if(!(reg.test(phone))){ alert('请输入正确的手机号码!') }else{ alert('输入的手机号码正确!') } exec() 方法

用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

var str = "123" var reg = RegExp(/3/); if(reg.exec(str)){ //包含; } var str=" world! Hello"; //查找"Hello" var patt=/Hello/g; var result=patt.exec(str); console.log("返回值: " + result); //Hello //查找 "RUNOOB" patt=/RUNOOB/g; result=patt.exec(str); console.log("返回值: " + result);//null


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有